Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Index Sequential Access Method</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Index_Sequential_Access_Method"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Index_Sequential_Access_Method rootpage-Index_Sequential_Access_Method skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Index Sequential Access Method</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>Index Sequential Access Method</b> (<b>ISAM</b>) ist eine von <a href="IBM" title="IBM">IBM</a> Ende der <a href="1960er" title="1960er">1960er</a> Jahre entwickelte Zugriffsmethode für Datensätze einer <a href="Datei" title="Datei">Datei</a>, die sowohl (sortiert) <a href="Sequentieller_Zugriff" title="Sequentieller Zugriff">sequentiellen</a> als auch <a href="Wahlfreier_Zugriff" title="Wahlfreier Zugriff">wahlfreien</a> (<i>random</i>) index-basierten Zugriff zulässt.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Liu2018_2-0" class="reference"><a href="#cite_note-Liu2018-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Eine Datei kann mehrere verschiedene Indizes haben. Jeder <a href="Datenbankindex" title="Datenbankindex">Index</a> definiert eine unterschiedliche <a href="Reihenfolge" title="Reihenfolge">Reihenfolge</a> der Datensätze, je nachdem, welche Informationen gesucht werden. Beispielsweise kann zu einer Kundendatei alphabetisch nach dem Nachnamen oder numerisch nach der Postleitzahl sortiert werden, sofern entsprechende Indizes existieren.
</p><p>Die indexsequentielle Zugriffsmethode, die auch in <a href="Datenbanksystem" class="mw-redirect" title="Datenbanksystem">Datenbanksystemen</a> Verwendung findet, ermöglicht die Zugriffsgeschwindigkeit aufgabenabhängig zu optimieren. Seit den ersten Standards von <a href="COBOL" title="COBOL">COBOL</a> um 1970 ist ISAM im <i>File-Control</i>-Paragraphen ansatzweise Teil des Standards der COBOL-Sprache. Eine sehr frühe Weiterentwicklung von ISAM, ebenfalls von IBM, aber nicht standardisiert, ist <a href="Virtual_Storage_Access_Method" title="Virtual Storage Access Method">Virtual Storage Access Method</a> (VSAM).
</p>

<div class="mw-heading mw-heading2"><h2 id="Speicherstruktur">Speicherstruktur</h2></div>

<p>Die <a href="Datensatz" title="Datensatz">Datensätze</a> sind in Blöcken oder Seiten zusammengefasst. Ein einfacher Index verweist auf den niedrigsten <a href="Schl%C3%BCssel_(Datenbank)" title="Schlüssel (Datenbank)">Schlüssel</a> eines Datenblockes der Hauptdatei, die aufsteigend sortiert ist. Eine einfache, einstufige Indexdatei besteht aus Indexeinträgen, die auf Datenblöcke der Hauptdatei verweisen. In der Regel ist der Index mehrstufig, wobei die Indexebenen wiederum indexsequentiell organisiert sind.
</p>
<ul><li><b>Suchen</b> in einer ISAM-Datei: Suche den Schlüssel sequentiell in Indexdatei, solange bis er gefunden wird oder der Index größer als der gesuchte Schlüssel ist. Im zweiten Fall ist bei einem mehrstufigen Index nun bekannt, auf welcher Indexseite der gesuchte Schlüssel nur sein kann. Dort erfolgt der Suchprozess entsprechend solange, bis der Schlüssel gefunden oder nicht gefunden wurde.</li>
<li><b>Einfügen</b>: Zunächst <b>Suchen</b>, dann prüfen, ob der neue Satz auf die Seite passt. Falls ja sortiert einfügen, falls nein neuen Satz auf nächster Seite bzw. Überlaufseite einfügen und Indexseiten aktualisieren.</li>
<li><b>Löschen</b>: Zunächst <b>Suchen</b>, dann Satz als <i>gelöscht</i> kennzeichnen. Wenn es der erste Satz der Seite war oder die Seite nun leer ist, Indexseiten anpassen.</li></ul>
<p>Ein Nachteil der ISAM-Dateiorganisation ist aus der Einfüge- und Löschoperation erkennbar. Die Hauptdatei und der Index sind statisch, neue Sätze werden häufig in Überlaufblöcken gespeichert und dadurch werden Suchoperationen langsamer.<sup id="cite_ref-Liu2018_2-1" class="reference"><a href="#cite_note-Liu2018-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Stark wachsende oder sich verändernde Dateien müssen deshalb zeitaufwändig regelmäßig reorganisiert werden.
</p>

<div class="mw-heading mw-heading3"><h3 id="Methode_2">Methode 2</h3></div>
<p>Die obige Methode wurde nicht sehr lange verwendet. Nachfolge war eine Methode, die auf eine <a href="Baum_(Datenstruktur)" title="Baum (Datenstruktur)">Baum/Blattstruktur</a> beruhte. Hierdurch war es möglich durch wenige Vergleiche festzustellen, wo sich der gesuchte Satz befand bzw. eingefügt werden sollte.
</p><p>Aufbau des Schlüssels der Isam Datei (Index).
</p>
<pre> *****************************************************************
* BLATT-NR * VATER *
*****************************************************************
* *
* BLATTINHALT (KEY) *
* *
*****************************************************************
* LINKER SOHN * RECHTER SOHN *
*****************************************************************
</pre>
<p>Erster Eintrag bei Beginn der Datei (<i>Wurzel</i>).
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispiel_COBOL">Beispiel COBOL</h2></div>

<p>Das nebenstehende Bild zeigt den File-Control Paragraphen für eine ISAM-Datei eines modernen <a href="COBOL" title="COBOL">COBOL</a>-<a href="Compiler" title="Compiler">Compilers</a>:
</p>
<ul><li>SELECT ... ASSIGN TO: Zuordnung externer Dateiname zu internem Dateiname</li>
<li>WITH COMPRESSION | WITH ENCRYPTION: optional mit Kompression bzw. Verschlüsselung</li>
<li>ORGANIZATION IS INDEXED</li>
<li>ACCESS MODE IS SEQUENTIAL | RANDOM | DYNAMIC: alternativ eine der drei Zugriffsmethoden. Sequentiell, über Index oder beides, d.&nbsp;h. mal über Index, ab diesem Startpunkt sequentiell und umgekehrt.</li>
<li>RECORD KEY IS key-name [= seg-name ...] [ WITH [NO] DUPLICATES ]] ...: Der (primäre) Schlüssel kann aus mehreren Segmenten, d.&nbsp;h. einzelnen Feldern des Datensatzes bestehen, doppelte Schlüssel können erlaubt sein. Die Felder, von denen auch nur Teile als (Teil-)Index verwendet werden können, sind – wie in COBOL üblich – in der FILE DESCRIPTION zu definieren.</li>
<li>ALTERNATER RECORD KEY IS ...: weitere Indexe können definiert werden.</li>
<li>LOCK MODE IS EXCLUSIVE | AUTOMATIC | MANUAL ...:</li>
<li>RESERVE {number} ALTERNATE AREA:</li>
<li>COLLATING SEQUENCE IS alphabet-name:</li></ul>
<div class="mw-heading mw-heading2"><h2 id="ISAM_heute">ISAM heute</h2></div>
<p>ISAM-Dateien werden auch heute noch eingesetzt, wenn sich der Einsatz einer <a href="Relationale_Datenbank" title="Relationale Datenbank">relationalen Datenbank</a> nicht lohnt (Datenmengen, Struktur, Performance, Kosten etc.).<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Dabei handelt es sich nicht nur um Daten aus COBOL-Umgebungen, sondern speziell unter <a href="Unix" title="Unix">Unix</a> hat durch die Realisierung <b>C-ISAM</b> von <a href="Informix" title="Informix">Informix</a> die indexsequentielle Zugriffsmethode beim Übergang vom Großrechner auf Unix-Systeme eine weite Verbreitung gefunden.
</p><p>Aufbauend auf ISAM wurde außerdem das Datenbanksystem <a href="MyISAM" title="MyISAM">MyISAM</a> entwickelt, das unter anderem im weit verbreiteten Datenbankmanagementsystem <a href="MySQL" title="MySQL">MySQL</a> implementiert ist.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>Zudem basiert die <a href="Extensible_Storage_Engine" class="mw-redirect" title="Extensible Storage Engine">Extensible Storage Engine</a> (ESE, auch bekannt als <a href="Microsoft_Jet_Engine#Jet_Blue" title="Microsoft Jet Engine">Jet Blue</a>) von Microsoft auf ISAM.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Die ESE dient(e) z.&nbsp;B. als Datenbank für Microsoft <a href="Active_Directory" title="Active Directory">Active Directory</a> und <a href="Microsoft_Exchange_Server" title="Microsoft Exchange Server">Exchange</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><span class="cite"><a rel="nofollow" class="external text" href="https://publib.boulder.ibm.com/epubs/pdf/7897b.pdf"><i>C-ISAM-Programmierhandbuch.</i></a> (PDF; 2,1&nbsp;MB; <span class="Abrufdatum" style="display:none"> Abgerufen am 10.&nbsp;Juni 2025</span>englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AIndex+Sequential+Access+Method&amp;rft.title=C-ISAM-Programmierhandbuch&amp;rft.description=C-ISAM-Programmierhandbuch&amp;rft.identifier=https%3A%2F%2Fpublib.boulder.ibm.com%2Fepubs%2Fpdf%2F7897b.pdf&amp;rft.language=en">&nbsp;</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><cite class="lang" lang="en" dir="auto" style="font-style:italic">IBM System/360 Operating System Data Management Services</cite>. 2. Auflage. 1972, C26-3746-1 (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Index+Sequential+Access+Method&amp;rft.btitle=IBM+System%2F360+Operating+System+Data+Management+Services&amp;rft.date=1972&amp;rft.edition=2&amp;rft.genre=book" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-Liu2018-2"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-Liu2018_2-0">a</a></sup> <sup><a href="#cite_ref-Liu2018_2-1">b</a></sup></span> <span class="reference-text">Alex Delis, Vassilis J. Tsotras: <cite class="lang" lang="en" dir="auto" style="font-style:italic">Indexed Sequential Access Method</cite>. In: Ling Liu, M. Tamer Özsu (Hrsg.): <cite class="lang" lang="en" dir="auto" style="font-style:italic">Encyclopedia of Database Systems</cite>. Springer, New York 2018, ISBN 978-1-4614-8266-6, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&nbsp;</span>1854–1857</span> (englisch).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Index+Sequential+Access+Method&amp;rft.atitle=Indexed+Sequential+Access+Method&amp;rft.au=Alex+Delis%2C+Vassilis+J.+Tsotras&amp;rft.btitle=Encyclopedia+of+Database+Systems&amp;rft.date=2018&amp;rft.genre=book&amp;rft.isbn=9781461482666&amp;rft.pages=1854-1857&amp;rft.place=New+York&amp;rft.pub=Springer" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite">Robert Bogue: <a rel="nofollow" class="external text" href="https://www.techrepublic.com/article/explore-the-differences-between-isam-and-relational-databases/"><i>Explore the differences between ISAM and relational databases.</i></a> In: <i>techrepublic.com.</i> 13.&nbsp;Februar 2004,<span class="Abrufdatum"> abgerufen am 11.&nbsp;Juni 2025</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AIndex+Sequential+Access+Method&amp;rft.title=Explore+the+differences+between+ISAM+and+relational+databases&amp;rft.description=Explore+the+differences+between+ISAM+and+relational+databases&amp;rft.identifier=https%3A%2F%2Fwww.techrepublic.com%2Farticle%2Fexplore-the-differences-between-isam-and-relational-databases%2F&amp;rft.creator=Robert+Bogue&amp;rft.date=2004-02-13&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://dev.mysql.com/doc/refman/8.4/en/myisam-storage-engine.html"><i>The MyISAM Storage Engine.</i></a> In: <i>dev.mysql.com.</i><span class="Abrufdatum"> Abgerufen am 10.&nbsp;Juni 2025</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AIndex+Sequential+Access+Method&amp;rft.title=The+MyISAM+Storage+Engine&amp;rft.description=The+MyISAM+Storage+Engine&amp;rft.identifier=https%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F8.4%2Fen%2Fmyisam-storage-engine.html&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/extensible-storage-engine"><i>Extensible Storage Engine.</i></a> In: <i>learn.microsoft.com.</i> Microsoft, 7.&nbsp;Januar 2021,<span class="Abrufdatum"> abgerufen am 10.&nbsp;Juni 2025</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AIndex+Sequential+Access+Method&amp;rft.title=Extensible+Storage+Engine&amp;rft.description=Extensible+Storage+Engine&amp;rft.identifier=https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fwindows%2Fwin32%2Fextensible-storage-engine%2Fextensible-storage-engine&amp;rft.publisher=Microsoft&amp;rft.date=2021-01-07&amp;rft.language=en">&nbsp;</span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/windows-server/administration/performance-tuning/role/active-directory-server/memory-usage-considerations"><i>Memory usage considerations for AD DS performance tuning.</i></a> In: <i>learn.microsoft.com.</i> Microsoft, 19.&nbsp;Mai 2022,<span class="Abrufdatum"> abgerufen am 10.&nbsp;Juni 2025</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AIndex+Sequential+Access+Method&amp;rft.title=Memory+usage+considerations+for+AD+DS+performance+tuning&amp;rft.description=Memory+usage+considerations+for+AD+DS+performance+tuning&amp;rft.identifier=https%3A%2F%2Flearn.microsoft.com%2Fen-us%2Fwindows-server%2Fadministration%2Fperformance-tuning%2Frole%2Factive-directory-server%2Fmemory-usage-considerations&amp;rft.publisher=Microsoft&amp;rft.date=2022-05-19&amp;rft.language=en">&nbsp;</span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-06-11" href="https://de.wikipedia.org/wiki/?title=Index_Sequential_Access_Method&amp;oldid=256915983">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>